home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / gcl-1.002 / gcl-1 / gcl-1.0 / h / 386-linux.h < prev   
Encoding:
C/C++ Source or Header  |  1994-07-25  |  2.4 KB  |  88 lines

  1. /* GCL-1.0 configuration for Linux running on i386/i486.
  2.  * Written by Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>,
  3.  * using previous versions by Matteo Frigo <Matteo.Frigo@dei.unipd.it>
  4.  * and Reginald S. Perry <reggie@miles.phys.washington.edu>.
  5.  */
  6.  
  7. /* use mainly BSD style Unix calls */
  8. #include "bsd.h"
  9.  
  10. /* use 386 assembly language optimizations */
  11. #include "386.h"
  12.  
  13. /* <sys/types> already contains a type `ulong' */
  14. #define USE_ULONG_
  15.  
  16. /* have sigaction, but not sigvec */
  17. #define HAVE_SIGACTION
  18. #undef HAVE_SIGVEC
  19. /* no signal stack */
  20. #define SETUP_SIG_STACK
  21. #define SV_ONSTACK 0
  22. /* we don't have these signals */
  23. /* #define SIGBUS SIGSEGV */ /* already have "#define SIGBUS SIGUNUSED" */
  24. #define SIGEMT SIGSEGV
  25. #define SIGSYS SIGSEGV
  26.  
  27. /* mprotect not implemented yet in kernel --> SGC not usable */
  28. #if 0
  29. #define SGC
  30. #define SIGPROTV SIGSEGV
  31. #define GET_FAULT_ADDR(sig,code,sv,a) ((char *) code)
  32. #endif
  33.  
  34. /* put some more things into *features* */
  35. #define ADDITIONAL_FEATURES \
  36.   ADD_FEATURE("I386"); ADD_FEATURE("LINUX"); ADD_FEATURE("PC386");
  37.  
  38. /* processor and its endianness */
  39. #define I386
  40. #define LITTLE_ENDIAN
  41.  
  42. /* kind of floats we have */
  43. #define    IEEEFLOAT
  44.  
  45. /* executable file format, world save */
  46. /* used by macro READ_HEADER in h/bsd.h */
  47. #define DATA_BEGIN (char *)N_DATADDR(header)
  48. #define UNIXSAVE "unexlin.c"
  49. #define NO_REMAP
  50.  
  51. /* object file format, dynamic loading */
  52. /* no need to include debugging symbols for dynamic loading -> add -S */
  53. #undef LD_COMMAND
  54. #define LD_COMMAND(command,main,start,input,ldarg,output) \
  55.   sprintf(command, "ld -d -S -N -x -A %s -T %x %s %s -o %s", \
  56.           main,start,input,ldarg,output)
  57. /* relocations like on many a.out systems */
  58. #define RELOC_FILE "rel_sun3.c"
  59.  
  60. /* other FILE internals */
  61. #define FCLOSE_SETBUF_OK
  62. #undef  LISTEN_FOR_INPUT
  63. #if 0 /* this was for libc-2.2.2 to libc-4.4.4 */
  64. #define LISTEN_FOR_INPUT(fp) \
  65.   if((fp)->_gptr >= (fp)->_egptr && (c=0,ioctl(fileno(fp), FIONREAD, &c),c<=0)) \
  66.      return 0
  67. #else /* this is for libc-4.5.8 and newer */
  68. #define LISTEN_FOR_INPUT(fp) \
  69.   if((fp)->_IO_read_ptr >= (fp)->_IO_read_end && (c=0,ioctl(fileno(fp), FIONREAD, &c),c<=0)) \
  70.      return 0
  71. #endif
  72.  
  73. /* no need for old GNU malloc, we are already using a new GNU malloc */
  74. /* #define GNU_MALLOC */
  75. /* avoid assumptions about free(3) */
  76. #define NOFREE_ERR
  77.  
  78. /* add support for punimax */
  79. #define CMAC
  80.  
  81.  
  82. /* Begin for cmpinclude */
  83.  
  84. /* gcc has alloca() built-in */
  85. #define HAVE_ALLOCA
  86.  
  87. /* End for cmpinclude */
  88.